Exemplary embodiments of the present invention relate to a misfire detector for detecting a misfire in an internal combustion engine. Using engine speed fluctuation is one such way to determine misfire.
Conventional misfire detectors for internal combustion engines are disclosed in Japanese Unexamined Patent Publication Nos. H3-164553 and H6-229311. No. H3-164553 teaches obviating the need to vary a misfire determination value (slice level) according to the engine speed, reducing misfire determination value matching hour, and saving ROM capacity. No. H6-229311 teaches obviating the influence of the detection errors due to structural errors of an engine speed sensor (a crank angle sensor), which senses crankshaft rotation fluctuations, so as to accurately detect whether the engine is misfiring or not.
The negative angular acceleration (the engine speed change with time) of an internal combustion engine at the time when the engine is misfiring is proportional to the output torque of the engine at the time of combustion. If the output torque is constant, the negative angular acceleration is constant independently of the angular velocity (engine speed) of the engine. However, the computation of engine speed fluctuation quantity for misfire detection involves detecting the engine speed synchronously with the phase of crankshaft rotation. For example, this computation may involve finding the difference between the engine speeds in the same phase in two cylinders where combustion strokes are consecutive. Accordingly, the intervals at which the engine speed fluctuation quantity is calculated are inversely proportional to the engine speed. Consequently, the engine speed fluctuation quantity at the time when the engine is misfiring is inversely proportional to the engine speed.
Misfire determination values are preset at values for which variations are taken into account with respect to the engine speed fluctuation quantity at the time when the engine is misfiring. In order to match with the foregoing characteristic, conventional misfire detection involves setting misfire determination values in a map, with the engine speed and a physical quantity as parameters. The physical quantity is related with the suction air quantity, which is correlated closely with the engine output torque in the combustion strokes. The mapping makes main corrections based on the differences in engine speed fluctuation quantities due to differences in engine speed and/or engine output torque. At the same time, the mapping appropriately corrects the influence of the matching of the correlation of the suction air quantity and output torque with the engine speed, the influence of friction and other influences. See Japanese Unexamined Patent Publication No. H3-164553, pages 1 to 3, and Japanese Unexamined Patent Publication No. H6-229311, pages 2 to 3.
As stated above, the engine speed is used as a parameter in the map, according to which misfire determination values are calculated. The engine speed is detected in synchronism with the phase of the crankshaft rotation. For the same suction air quantity, the engine speed fluctuation quantity at the time when the engine is misfiring varies in a curve roughly in inverse proportion to the engine speed. Accordingly, as shown in FIG. 6, if the engine speed NE [rpm] is used as a parameter for misfire detection, the relationship between it and misfire determination values REF [rpm] needs to be set in a curve indicating that the speed NE is roughly in inverse proportion to the values REF.
In order to improve the interpolation accuracy in the map, which has a curved characteristic, it is necessary to increase the number of map points. This makes the matching hour excessive and needs greater storage capacity. Misfire determination values REF between the map points are calculated by linear interpolation. This makes it impossible to improve the accuracy in calculating misfire determination values REF.
If an internal combustion engine misfires while it is running, the engine speed falls momentarily. In view of this, as described in Japanese Unexamined Patent Publication No. H6-229311, a general misfire detector for an internal combustion engine detects the rotational fluctuation quantity for each combustion stroke of each cylinder and compares the detected quantity with a predetermined misfire determination value to determine whether the engine is misfiring or not.
Even during normal combustion, however, the detected rotational fluctuation values may vary due to the variation of combustion among the cylinders, or due to manufacturing tolerances of the crank angle sensor. The variation of the detected rotational fluctuation values due to such causes other than misfires may lower the misfire detection accuracy. In view of this, as described in Japanese Unexamined Patent Publication No. H10-54295, another misfire detector for an internal combustion engine learns the variation of detected rotational fluctuation values during normal combustion and corrects these values with the learned variation so as to detect misfires without being influenced by the variation of combustion among the cylinders and/or the manufacturing tolerances.
In general, even while an internal combustion engine is not running (the ignition switch is off), learned values for misfire determination need to be stored and held so that they can be used after the engine starts up the next time. Therefore, as described in Japanese Unexamined Patent Publication No. H10-54295, a backup RAM, which has a backup power supply, is used as a memory for storing the learned values. Normally, the backup power supply is supplied with a supply voltage from the battery mounted in the vehicle. If the battery is removed from the vehicle, the backup RAM is not supplied with voltage, so that the learned values stored in this RAM disappear. Accordingly, if the battery is removed from the vehicle, any occurring misfire cannot be detected until the next learning is finished with a battery mounted in the vehicle. In this case, the engine is controlled with a misfire being misjudged as normal combustion.
In general, learning is inhibited when an internal combustion engine is misfiring, and the variation of detected rotational fluctuation values is learned only during normal combustion. As stated above, however, if the removal of the battery from the vehicle makes it impossible to detect misfires, the variation of detected rotational fluctuation values at the time when the engine is misfiring is misjudged and learned as the variation of detected rotational fluctuation values during normal combustion until the misfire detector returns to its normal condition where it can normally detect misfires. This worsens the learning accuracy, thus worsening the misfire detection accuracy.
The foregoing problems may conceivably be solved by the replacement of the backup RAM with an EEPROM or another rewritable nonvolatile memory, which requires no backup power supply, as a memory for storing the learned values. The learned values stored in the nonvolatile memory are rewritten every time a learned value is computed while the engine is running. As is well known, however, an EEPROM or the like can be rewritten only a limited number of times. Consequently, an EEPROM or the like cannot be used, but a backup RAM needs to be used. Using RAM as a memory device means that for a long period, of say, fifteen or more years, an unknown and very high number of rewrites can occur.